package gameconstruction;

import model.ModelContext;
import controller.GameController;
import drawing.DrawAbles;

/**
 * Interface used to initialize levels
 * @author SwiftPengu
 *
 */
public interface LevelCreator {
	/**
	 * Spawns a new model, using the given ModelContext
	 * @param mo the modelcontext which will contain the models
	 * @require mo.getObjectCount()==0
	 */
	public void spawnModels(ModelContext mo);
	
	/**
	 * Spawns the controllers for the new model, using the given GameController
	 * @param gc the gamecontroller which will control the objects
	 */
	public void spawnControllers(GameController gc);
	
	/**
	 * 
	 * @param vc
	 */
	public void spawnViews(DrawAbles vc);
}
